﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace eSDK_TP_Demo_CS_CSharp.FunctionPage
{
    /// <summary>
    /// Interaction logic for ConnectSites_Code.xaml
    /// </summary>
    public partial class ConnectSites_Code : UserControl
    {
        public ConnectSites_Code()
        {
            InitializeComponent();
            ConnectSites_Code_Loaded();
        }

        private void ConnectSites_Code_Loaded()
        {
            this.Code_FilowDocument.Inlines.Add("\r\n");
            Bold bold = new Bold();
            bold.Inlines.Add("ConnectSites_UI.xaml.cs\r\n");
            bold.FontSize = 15;
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("using System;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Collections.Generic;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Linq;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Text;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Controls;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Data;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Documents;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Input;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Media;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Media.Imaging;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Navigation;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Windows.Shapes;\r\n");
            this.Code_FilowDocument.Inlines.Add("using com.huawei.esdk.tp.professional.DataType;\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("namespace eSDK_TP_Demo_CS_CSharp.FunctionPage\r\n");
            this.Code_FilowDocument.Inlines.Add("{\r\n");
            this.Code_FilowDocument.Inlines.Add("    public partial class ConnectSites_UI : UserControl\r\n");
            this.Code_FilowDocument.Inlines.Add("    {\r\n");
            this.Code_FilowDocument.Inlines.Add("        ConferenceService service = new ConferenceService();\r\n");
            this.Code_FilowDocument.Inlines.Add("        AuthorizeService loginService = new AuthorizeService();\r\n");
            this.Code_FilowDocument.Inlines.Add("        QueryResultCode queryResultCode = new QueryResultCode();\r\n");
            this.Code_FilowDocument.Inlines.Add("        //confIdText变更事件时启动的计时器\r\n");
            this.Code_FilowDocument.Inlines.Add("        private System.Timers.Timer timer = null;\r\n");
            this.Code_FilowDocument.Inlines.Add("        delegate void textDelegate();\r\n");
            this.Code_FilowDocument.Inlines.Add("        bool falg = true;\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        public ConnectSites_UI()\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            InitializeComponent();\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        //呼叫按钮\r\n");
            this.Code_FilowDocument.Inlines.Add("        private void ConnectSite_Click(object sender, RoutedEventArgs e)\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            loginService.Login();\r\n");
            this.Code_FilowDocument.Inlines.Add("            List<string> list = new List<string>();\r\n");
            this.Code_FilowDocument.Inlines.Add("            foreach (SiteStatusEx se in this.ConfSiteList.SelectedItems)\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("                list.Add(se.uri);\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("            //调用ConferenceService中的ConnectSites方法，实现呼叫会场功能\r\n");
            bold = new Bold();
            bold.Foreground = new SolidColorBrush(Colors.Red);
            bold.Inlines.Add("            int result = service.ConnectSites(this.confIDText.Text, list);\r\n");
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("            if (result == 0)\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.OperationDefeatText.Visibility = Visibility.Collapsed;\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.OperationSucceedText.Visibility = Visibility.Visible;\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("            else\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.OperationDefeatText.Visibility = Visibility.Visible;\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.OperationSucceedText.Visibility = Visibility.Collapsed;\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("            this.ResultCodeText.Text = result.ToString();\r\n");
            this.Code_FilowDocument.Inlines.Add("            loginService.Logout();\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        //“会议Id”TextBox的TextChanged事件，当输入“会议Id”时启动计时器，\r\n");
            this.Code_FilowDocument.Inlines.Add("        //“在3秒后获取“会议Id”，并查询该会议的所有会场\r\n");
            this.Code_FilowDocument.Inlines.Add("        private void confIDText_Changed(object sender, TextChangedEventArgs e)\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            if (!falg)\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("                timer = new System.Timers.Timer();\r\n");
            this.Code_FilowDocument.Inlines.Add("                timer.Interval = 3000;\r\n");
            this.Code_FilowDocument.Inlines.Add("                timer.Elapsed += new System.Timers.ElapsedEventHandler(AliveCode);\r\n");
            this.Code_FilowDocument.Inlines.Add("                timer.AutoReset = false;\r\n");
            this.Code_FilowDocument.Inlines.Add("                timer.Enabled = true;\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("            else\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("                falg = false;\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        private void AliveCode(object source, System.Timers.ElapsedEventArgs e)\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new textDelegate(getConfSiteList));\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        //获取“会议Id”，调用ConferenceService中的QueryConfSitesStatus方法，查询该会议的所有会场\r\n");
            this.Code_FilowDocument.Inlines.Add("        private void getConfSiteList()\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            loginService.Login();\r\n");
            this.Code_FilowDocument.Inlines.Add("            queryResultCode = service.QueryConfSitesStatus(this.confIDText.Text);\r\n");
            this.Code_FilowDocument.Inlines.Add("            if (queryResultCode.Result != 0)\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.OperationSucceedText.Visibility = Visibility.Collapsed;\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.OperationDefeatText.Visibility = Visibility.Visible;\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.ResultCodeText.Text = queryResultCode.Result.ToString();\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("            else\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.ConfSiteList.ItemsSource = queryResultCode.SiteStatusList;\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.OperationSucceedText.Visibility = Visibility.Collapsed;\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.OperationDefeatText.Visibility = Visibility.Collapsed;\r\n");
            this.Code_FilowDocument.Inlines.Add("                this.ResultCodeText.Text = \"\";\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("            loginService.Logout();\r\n");
            this.Code_FilowDocument.Inlines.Add("            timer.Stop();\r\n");
            this.Code_FilowDocument.Inlines.Add("            timer.Close();\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("    }\r\n");
            this.Code_FilowDocument.Inlines.Add("}\r\n");


            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            bold = new Bold();
            bold.Inlines.Add("ConferenceService.cs\r\n");
            bold.FontSize = 15;
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("using System;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Collections.Generic;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Linq;\r\n");
            this.Code_FilowDocument.Inlines.Add("using System.Text;\r\n");
            this.Code_FilowDocument.Inlines.Add("//引用项目所用到的包\r\n");
            bold = new Bold();
            bold.Foreground = new SolidColorBrush(Colors.Red);
            bold.Inlines.Add("using com.huawei.esdk.tp.professional.local;\r\n");
            this.Code_FilowDocument.Inlines.Add(bold);
            bold = new Bold();
            bold.Foreground = new SolidColorBrush(Colors.Red);
            bold.Inlines.Add("using com.huawei.esdk.tp.professional.DataType;\r\n");
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("namespace eSDK_TP_Demo_CS_CSharp\r\n");
            this.Code_FilowDocument.Inlines.Add("{\r\n");
            this.Code_FilowDocument.Inlines.Add("    public class ConferenceService\r\n");
            this.Code_FilowDocument.Inlines.Add("    {\r\n");
            this.Code_FilowDocument.Inlines.Add("        //定义ConferenceMgrServiceEx\r\n");
            bold = new Bold();
            bold.Foreground = new SolidColorBrush(Colors.Red);
            bold.Inlines.Add("        private ConferenceMgrServiceEx service = null;\r\n");
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        public ConferenceService()\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            //实例化ConferenceMgrServiceEx\r\n");
            bold = new Bold();
            bold.Foreground = new SolidColorBrush(Colors.Red);
            bold.Inlines.Add("            service = ConferenceMgrServiceEx.Instance();\r\n");
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("\r\n");
            this.Code_FilowDocument.Inlines.Add("        //呼叫会场\r\n");
            this.Code_FilowDocument.Inlines.Add("        public int ConnectSites(string confID, List<string> list)\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            //调用ConferenceMgrServiceEx中的connectSitesEx接口，完成呼叫会议功能\r\n");
            bold = new Bold();
            bold.Foreground = new SolidColorBrush(Colors.Red);
            bold.Inlines.Add("            int resultCode = service.connectSitesEx(confID, list);\r\n");
            this.Code_FilowDocument.Inlines.Add(bold);
            this.Code_FilowDocument.Inlines.Add("            return resultCode;\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("        \r\n");
            this.Code_FilowDocument.Inlines.Add("        // 查询指定会议的所有会场状态\r\n");
            this.Code_FilowDocument.Inlines.Add("        public QueryResultCode QueryConfSitesStatus(string confId)\r\n");
            this.Code_FilowDocument.Inlines.Add("        {\r\n");
            this.Code_FilowDocument.Inlines.Add("            QueryResultCode queryResultCode = new QueryResultCode();\r\n");
            this.Code_FilowDocument.Inlines.Add("            TPSDKResponseEx<List<SiteStatusEx>> result = service.queryConfSitesStatusEx(confId, null);\r\n");
            this.Code_FilowDocument.Inlines.Add("            int resultCode = result.resultCode;\r\n");
            this.Code_FilowDocument.Inlines.Add("            queryResultCode.Result = resultCode;\r\n");
            this.Code_FilowDocument.Inlines.Add("            if (0 == resultCode)\r\n");
            this.Code_FilowDocument.Inlines.Add("            {\r\n");
            this.Code_FilowDocument.Inlines.Add("                queryResultCode.SiteStatusList = result.result;\r\n");
            this.Code_FilowDocument.Inlines.Add("            }\r\n");
            this.Code_FilowDocument.Inlines.Add("            return queryResultCode;\r\n");
            this.Code_FilowDocument.Inlines.Add("        }\r\n");
            this.Code_FilowDocument.Inlines.Add("    }\r\n");
            this.Code_FilowDocument.Inlines.Add("}\r\n");

        }
    }
}
